I. Field of the Invention
The present invention pertains generally to the field of cryptography, and more specifically to a method and apparatus for fast cryptographic key generation in a communication device.
II. Description of the Related Art
Wireless communications have become commonplace in much of the world today. In many digital wireless communication systems, audio information, typically voice, is transmitted between wireless communication devices and other end units via infrastructure equipment. In modern communication systems, data transmission is also possible. Such uses of wireless data transmission include Internet access, transmitting email, or transmitting voice using data protocols. Examples of digital wireless communication systems include code division multiple access (CDMA) systems, global system for mobile communications (GSM) systems, wideband code division multiple access (WCDMA) systems, as well as others.
It is often desired to provide for security and authentication in such wireless communication systems, and such security and authentication currently exist in modern communication systems today. Often, public-key cryptography is used in these systems to provide secure communications. Public-key cryptography is well known in the art, and relies on the generation of a pair of cryptographic keys, a private key and a public key. The public key may be shared with other entities, but the private key remains secret to others. Information is encrypted using another's public key. The encrypted information is then transmitted to a remote device that supplied the public key. The remote device decrypts the information using a private key corresponding to the remote device's public key. Only the remote device knows this private key.
In virtually all public key systems, the encryption and decryption times are very lengthy compared to other block-oriented algorithms such as DES for equivalent data sizes. Therefore, in most implementations of public-key systems, a temporary, random ‘session key’ of much smaller length than the message is generated for each message and alone encrypted by the public key algorithm. The message is actually encrypted using a faster private key algorithm with the session key. At the receiver side, the session key is decrypted using the public-key algorithms and the recovered ‘plaintext’ key is used to decrypt the message.
One problem with using public key cryptography and variations thereof in mobile applications, such as in a wireless communication device, is that generation of the public key can take significant processing power and time to compute. Generally, a public key and a private key is generated after a user of the communication device initiates a communication. The communication device must then compute the public and private key, resulting in a delay in establishing a secure communication with a remote device. Therefore, what is needed is a way to generate the public key and/or private key quickly after a user indicates a desire to initiate a secure communication.